package ib_model.src;

//
// Destroys the packets and collects statistics
//
simple IBSink
{
 parameters:
  double flitSize @unit(B);       // flit size in bytes
  double popDlyPerByte @unit(ns);   // the PCI Exp drain rate
  int maxVL;                      // Maximum VL we send on
  volatile double hiccupDuration @unit(us); // the time a hiccup may take 
  volatile double hiccupInterval @unit(us); // the time interval between hiccups
  double startStatCol @unit(s);  // Time to start statistics collection from
  int repFirstPackets; // number of first packets that if are accepted record message latency done 
  int on_cc = default(0);            //IBA congestion control
  int on_newcc = default(0);         //new congestion control
  double timeStep_us @unit(us); // timestep for throughput calculation
  int on_utilization = default(0);
 gates:
  input in;
  output sent;
  output out;
  output pushFECN;
  output pushBECN;
}